package com.excesys.exsecs.energy.service;

import cn.hutool.core.lang.tree.Tree;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.excesys.exsecs.energy.entity.DevKeqMap;
import com.excesys.exsecs.energy.entity.DimKeq;

import java.util.List;
import java.util.Map;

public interface DimKeqService extends IService<DimKeq> {

    List<Tree<Long>> queryTree(DimKeq dimKeq);

    DimKeq getKeqById(Long id);

    /**
     * 保存或更新重点设备与关联表计的关系
     */
    boolean saveDevKeqMap(DimKeq dimKeq);

    /**
     * 保存或更新重点设备与关联重点设备映射关系
     */
    boolean saveKeqRelMap(DimKeq dimKeq);

    /**
     * 删除重点设备及关联表计关系和重点设备映射关系
     */
    boolean removeKeqBatchByIds(List<Long> ids);

    List<DevKeqMap> getMetersById(DimKeq dimKeq);

    JSONObject powerKeqSanchitou(String id, String startDate, String endDate);

    JSONObject powerKeqBingtu(String startDate, String endDate);

    /*
     * 能耗报表
     * */
    List<Map<String, Object>> getKeqReportPage(String ids, String date);

    /*
     * 能耗对比
     * */
    JSONObject powerKeqContrast(String ids, String startDate, String endDate);

    /*
     * 能耗排序
     * */
    List<Map<String, Object>> devSort(String ids, String startDate, String endDate, String order);
}